package com.hl.qzzpbackend.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hl.qzzpbackend.common.DeleteRequest;
import com.hl.qzzpbackend.model.dto.job.JobAddRequest;
import com.hl.qzzpbackend.model.dto.job.JobCheckRequest;
import com.hl.qzzpbackend.model.dto.job.JobQueryRequest;
import com.hl.qzzpbackend.model.dto.job.JobUpdateRequest;
import com.hl.qzzpbackend.model.entity.Job;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hl.qzzpbackend.model.vo.JobVO;

import javax.validation.Valid;

/**
 * 职位信息 业务层
 * @author helong
*/
public interface JobService extends IService<Job> {

    /**
     * 新增职位
     * @param jobAddRequest 新增职位请求类
     * @return 是否成功
     */
    boolean jobAdd(JobAddRequest jobAddRequest);

    /**
     * 更新职位信息
     * @param jobUpdateRequest 更新职位信息请求类
     * @return 是否成功
     */
    boolean jobUpdate(JobUpdateRequest jobUpdateRequest);

    /**
     * 删除职位信息
     * @param deleteRequest 删除请求类
     * @return 是否成功
     */
    boolean jobDelete(DeleteRequest deleteRequest);

    /**
     * 获取职位详情
     * @param jobId 职位id
     * @return 职位详情
     */
    JobVO jobDetail(Long jobId);

    /**
     * 分页查询职位信息 (根据公司id)
     * @param jobQueryRequest 职位查询请求类
     * @return 职位信息分页结果
     */
    Page<JobVO> jobPageByCondition(JobQueryRequest jobQueryRequest);


    /**
     * 审核职位
     * @param jobCheckRequest 审核请求类
     * @return 是否成功
     */
    boolean jobCheck(JobCheckRequest jobCheckRequest);
}
